664 research outputs found

    Improved semantics and implementation through property-based testing with QuickCheck

    Get PDF

    Towards property-based testing of RESTful web services

    Get PDF
    Developing APIs as Web Services over HTTP implies adding an extra layer to software, compared to the ones that we would need to develop an API distributed as, for example, a library. This additional layer must be included in testing too, but this implies that the software under test has an additional complexity due both to the need to use an intermediate protocol in tests and to the need to test compliance with the constraints imposed by that protocol: in this case the constraints defined by the REST architectural style. On the other hand, these requirements are common to all the Web Services, and because of that, we should be able to abstract this aspect of the testing model so that we can reuse it in testing any Web Service. In this paper, as a first step towards automating the testing of Web Services over HTTP, we describe a practical mechanism and model for testing RESTful Web Services without side effects and give an example of how we successfully adapted that mechanism to test two different existing Web Services: Storage Room by Thriventures and Google Tasks by Google. For this task we have used Erlang together with state machine models in the property-based testing tool Quviq QuickCheck, implemented using the statem module. 1

    DECIPHERING THE SECRET OF SARCOMERE ASSEMBLY AND DISEASES USING THE ZEBRAFISH MODEL SYSTEM: REGULATION OF MYOFIBRILLOGENESIS BY SMYD1B AND ITS PARTNERS

    Get PDF
    Myofibrillogenesis is a process of precise assembly of sarcomeric proteins into the highly organized sarcomeres which are essential for muscle cell differentiation and function. Myofibrillogenesis requires proper folding and assembly of newly synthesized sarcomeric proteins. Mutations of the sarcomeric proteins are known to cause skeletal and cardiac muscle diseases. smyd1b is a skeletal and cardiac muscle-specific gene which encodes two alternatively spliced isoforms, smyd1b_tv1 and smyd1b_tv2. Knockdown of smyd1b (tv1 and tv2) expression resulted in zebrafish larvae without locomotion and heart contraction. Thick filament assembly was significantly disrupted in smyd1b knockdown embryos. Yeast Two-Hybrid study showed that Smyd1 associates with another muscle-specific protein--skNAC, however, skNAC function in muscle cells is unknown. In order to expand the understanding of smyd1b function and study the working mechanism, I further characterized the function of Smyd1b and its partners including skNAC and Hsp90&alpha1 during muscle development, and carried out mechanistic studies using zebrafish as a model system. Our findings show that: 1) In addition to the thick filament, smyd1b plays an important role in the assembly of thin and titin filaments, as well as Z-line and M-line. 2) Knockdown of smyd1b has no effect for heart tube formation; however, it disrupts the myofibril assembly of the cardiac muscle that causes the heart defect. 3) Smyd1b_tv1, but not Smyd1b_tv2 can be localized on the M-line of sarcomeres. 4) Ser225 on Smyd1b_tv1, which is a potential phosphorylation site, is important for the M-line localization of Smyd1b_tv1. 5) Knockdown of smyd1b causes the upregulation of hsp90&alpha1 and unc45b gene expression. 6) hsp90&alpha1 plays an important role for myofibril assembly. 6) Knockdown of smyd1b or hsp90&alpha1 causes the reduction of myosin protein accumulation. 7) Smyd1b_tv1, but not Smyd1b_tv2 associates with the myosin chaperones Hsp90&alpha1 and Unc45b. 8) sknac is required for the thick and thin filaments assembly. 9) Knockdown of sknac causes the reduction of myosin protein accumulation. These studies provide us an in-depth characterization of smyd1b and its partners' function and expands the mechanistic understanding of how smyd1b fulfils its vital role in myofibrillogenesis. Most importantly, this study provides new insights to help us understand the complex process of myofibrillogenesis and sarcomere diseases

    Scalable SD Erlang Computation Model

    Get PDF
    The technical report presents implementation of s groups and semi-explicit placement of the Scalable Distributed (SD) Erlang. The implementation is done on the basis of Erlang/OTP 17.4. The source code can be found in https://github.com/release-project/otp/tree/17.4-rebased. We start with a discussion of differences between distributed Erlang global groups and SD Erlang s groups (Chapter 1). Then we discuss the implementation of s groups and the features of sixteen functions that were modified and introduced in global and s group modules (Chapter 2). After that we discuss semi-explicit placement, node attributes and choose node/1 function (Chapter 3). These functions were unit tested (Chapter 4). Finally, we discuss future work (Chapter 5)

    Scalable SD Erlang Reliability Model

    Get PDF
    This technical report presents the work we have conducted to support SD Erlang reliability and to formally specify the semantics of s groups. We have considered the following aspects of SD Erlang reliability: node recovery after failures and s group name uniqueness

    Multi-level Visualization of Concurrent and Distributed Computation in Erlang

    Get PDF
    This paper describes a prototype visualization system for concurrent and distributed applications programmed using Erlang, providing two levels of granularity of view. Both visualizations are animated to show the dynamics of aspects of the computation. At the low level, we show the concurrent behaviour of the Erlang schedulers on a single instance of the Erlang virtual machine, which we call an Erlang node. Typically there will be one scheduler per core on a multicore system. Each scheduler maintains a run queue of processes to execute, and we visualize the migration of Erlang concurrent processes from one run queue to another as work is redistributed to fully exploit the hardware. The schedulers are shown as a graph with a circular layout. Next to each scheduler we draw a variable length bar indicating the current size of the run queue for the scheduler. At the high level, we visualize the distributed aspects of the system, showing interactions between Erlang nodes as a dynamic graph drawn with a force model. Speci?cally we show message passing between nodes as edges and lay out nodes according to their current connections. In addition, we also show the grouping of nodes into ā€œs_groupsā€ using an Euler diagram drawn with circles

    Translation and Reception of The Adventures of Huckleberry Finn in China and Its Implications

    Get PDF
    The Adventures of Huckleberry Finn is a unique American childrenā€™s novel. Since its first Chinese translation by Zhang Duo-sheng in 1942, various Chinese versions have been emerging. Based on the reception aesthetics theory, this paper first analyzes Chinese translations of the novel in different historical periods of China, then discusses its reception among both the professional readers and the ordinary readers in China by sorting out the professional book reviews published on China professional academic databases and the general book reviews published on general websites, and finally summarizes its mode of translation and reception in China and its implications for the ā€œgoing outā€ of Chinese childrenā€™s literature.

    Automating property-based testing of evolving web services

    Get PDF
    Web services are the most widely used service technology that drives the Service-Oriented Computing~(SOC) paradigm. As a result, effective testing of web services is getting increasingly important. In this paper, we present a framework and toolset for testing web services and for evolving test code in sync with the evolution of web services. Our approach to testing web services is based on the Erlang programming language and QuviQ QuickCheck, a property-based testing tool written in Erlang, and our support for test code evolution is added to Wrangler, the Erlang refactoring tool. The key components of our system include the automatic generation of initial test code, the inference of web service interface changes between versions, the provision of a number of domain specific refactorings and the automatic generation of refactoring scripts for evolving the test code. Our framework provides users with a powerful and expressive web service testing framework, while minimising users' effort in creating, maintaining and evolving the test model. The framework presented in this paper can be used by both web service providers and consumers, and can be used to test web services written in whatever language; the approach advocated here could also be adopted in other property-based testing frameworks and refactoring tools

    The Master Tasks of Forage Breeding in China

    Get PDF
    • ā€¦
    corecore